home *** CD-ROM | disk | FTP | other *** search
/ Enter 2005 August / EnterCD 08_2005.iso / dosapps / freedos / doc / display / readme.txt < prev   
Encoding:
Text File  |  2003-09-19  |  10.1 KB  |  265 lines

  1. FreeDOS DISPLAY and PRINTER v0.09  (20-Sep-2003)
  2. =================================
  3.  
  4.  
  5.     Aitor SANTAMARIA_MERINO  (aitorsm@inicia.es)
  6.         2002-2003
  7.  
  8.  
  9.     Contributed code and first steps by
  10.         Ilya V. Vasilyev  (hscool@netclub.ru)
  11.             2000
  12.  
  13.  
  14. DISPLAY device driver for FreeDOS
  15.  
  16.  
  17.      This  program  is  free  software;  you can redis-
  18.      tribute it and/or modify it under the terms of the
  19.      GNU  General  Public  License  as published by the
  20.      Free Software Foundation; either version 2 of  the
  21.      License, or (at your option) any later version.
  22.  
  23.      This  program  is  distributed in the hope that it
  24.      will be useful, but WITHOUT ANY WARRANTY;  without
  25.      even  the  implied  warranty of MERCHANTABILITY or
  26.      FITNESS FOR A PARTICULAR  PURPOSE.   See  the  GNU
  27.      General Public License for more details.
  28.  
  29.      You should have received a copy of the GNU General
  30.      Public License along with this  program;  if  not,
  31.      write  to  the  Free Software Foundation, Inc., 59
  32.      Temple Place - Suite 330, Boston, MA   02111-1307,
  33.      USA.
  34.  
  35. ------
  36.  
  37.    1.- About DISPLAY and PRINTER
  38.    2.- How to use the program
  39.    3.- Using MODECON.EXE
  40.    4.- Codepages pack
  41.    4.- Known Issues and Limitations
  42.    5.- Future wishes
  43.  
  44.  
  45. 1.- About DISPLAY and PRINTER
  46. =============================
  47.  
  48. DISPLAY.SYS and PRINTER.SYS are device drivers that supply existing drivers
  49. with codepage replacement capabilities.
  50.  
  51. Both routines have hardware type dependant routines to do the actual job, as
  52. well as (mainly) two other routines, one to SELECT the wanted codepage,
  53. interfacing with whichever other DOS programs is due, and balancing between the
  54. fixed (firmware) and the configurable (software) codepages, and a second
  55. routine, PREPARE, to manage several buffers with information about different
  56. codepages. DISPLAY also hooks some interrupt vectors to interface with the rest
  57. of DOS. However, they share much of the code, so that the sources supplied here
  58. are supposed to be valid for both.
  59.  
  60. Communication between the user and the device driver to change codepage is made
  61. through IOCTL calls, where a generic IOCTL call informs the device (e.g. CON)
  62. that a codepage change is starting, and that the contents of a CPI (Codepage
  63. Information) file is going to be sent through the IOCTL IN line. Usual DOS
  64. kernel device drivers for which codepage selection has a meaning, such as CON
  65. or PRN, do not implement the response of these calls. The mission of 
  66. DISPLAY.SYS and PRINTER.SYS is to implement these functions without disturbing
  67. with the rest device driver calls.
  68.  
  69. The difference between both is that DISPLAY will monitor the video adapter
  70. interrupt (10h) to trap mode changes and restablish the codepage when it is
  71. required, and that it communicates with the rest of the world through the DOS
  72. multiplexer interrupt (2Fh), MuX code ADh.
  73.  
  74. The codepage preparation is usually made by the DOS MODE command, whereas the
  75. selection is directly made by the kernel-loadable NLSFUNC component, or
  76. improperly, by the DOS MODE command.
  77.  
  78. At this stage of development, nor DISPLAY neither PRINTER are device drivers
  79. that communicate through device driver calls. They are loadable TSRs, and in
  80. the case of DISPLAY, it communicates with the rest of the world through a
  81. slightly enlarged muliplexer interrupt. PRINTER has no binary, being one of
  82. the reasons that it has no way to interface with programs outside. It is
  83. intended that they will work as they should in version 1.0. For a list of
  84. other limitations of current version, see the sections below.
  85.  
  86. Ilya V. Vasilyev is the author of the first DISPLAY-style program, that
  87. appeared inside his CHCP05b package. Ilya's code has place today as:
  88. - the video interrupt manager
  89. - the EGA hardware type selection routines
  90. for which I am deeply grateful.
  91.  
  92.  
  93. 2.- Hardware supported
  94. ======================
  95.  
  96. DISPLAY.SYS supports the following hardware types (for graphic adapters):
  97.  
  98.    EGA
  99.    VGA
  100.    LCD
  101.  
  102. PRINTER.SYS does not have an executable file yet, because:
  103. (a) there is no hardware supported
  104. (b) it cannot be interfaced
  105.  
  106. (For more information about the supported hardware, see 204.txt)
  107.  
  108. DISPLAY/PRINTER 0.09 is supplied under the GNU-GPL license, and it admits easy
  109. adding of other hardware types, by just implementing the routines that do the
  110. hardware codepage replacement. For more information, you should read the
  111. FreeDOS technote 204, which is included in this documentation (as 204.txt).
  112.  
  113.  
  114. 3.- Interactions
  115. ================
  116.  
  117. DISPLAY/PRINTER 0.09 interact with other parts of DOS. Namely:
  118.   - KEYB  (DISPLAY.SYS):    KEYB is asked to replace codepage when it is due
  119.                             DISPLAY.SYS fails if KEYB fails
  120.   - PRINT (PRINTER.SYS):    PRINTER.SYS checks wether PRINT is already in use
  121.                             PRINTER.SYS fails if PRINT is printing
  122.   - GRAFTABL (DISPLAY.SYS): GRAFTABL has priority over DISPLAY.SYS when setting
  123.                             fonts
  124.   - ARABIC/HEBREW (DISPLAY.SYS):
  125.                             DISPLAY.SYS calls these to manage more than one
  126.                             hardware codepages
  127.  
  128.  
  129. 4.- How to use the program
  130. ==========================
  131.  
  132. Simply run it, being sure that no other DISPLAY program (identified
  133. though int2Fh, MUX=ADh, fn=00) has been previously loaded.
  134. The commandline is of the form:
  135.  
  136.    DISPLAY   devname[:]=(hwtype,n,m)
  137.  
  138. where:
  139.    devname a valid device name, that in this version is ignored
  140.            (use ANY valid name, such as CON)
  141.    hwtype  a valid hardware type identifier, such as EGA or VGA
  142.    n       hardware codepages: indicated as a simple number, or as a list
  143.            of numbers (n1,n2,...) if more than one are to be used
  144.    m       software codepage buffers and subfonts. It can specify simply
  145.            a number (number of codepage buffers), or a pair (b,f) with the
  146.            number of codepage buffers and the number of subfonts (a subfont is
  147.            a font with a different size, e.g. 14 or 16 rows per character). If
  148.            the number of subfonts is ommited, then the most appropriate number
  149.            will be detected.
  150.  
  151. Example:
  152.  
  153.    DISPLAY  CON=(VGA,437,2)
  154.  
  155. specifies to use DISPLAY for the CON device, for an VGA adapter type and 2
  156. buffers for prepared codepages.
  157.  
  158. To interface with DISPLAY, use the MODECON.EXE program provided. In the
  159. future, MODECON will be merged to FD-MODE.
  160.  
  161. DISPLAY does not offer the possibility to unload once loaded.
  162.  
  163.  
  164. 5.- Known limitations
  165. =====================
  166.  
  167. The following limitations apply to DISPLAY/PRINTER 0.09:
  168. - Only DISPLAY-type RAW fonts are admitted to be prepared (in the form of RAW
  169.   files, see below). CPI files are not yet admitted
  170. - It does NOT interface with IOCTL calls, so it does NOT work with other MODE
  171.   programs than MODECON.EXE
  172.  
  173. These two are to be overcome on versions 0.10 and 1.0 respectively.
  174.  
  175.  
  176. 6.- Using MODECON.EXE
  177. =====================
  178.  
  179. Use the accompaining MODECON.EXE utility to communicate with the
  180. program. It is self-explanatory (issue MODECON /? to see the options).
  181. There are three main commands that allow you to interface with DISPLAY.
  182.  
  183. The first one is to know the currently active codepage:
  184.  
  185. MODECON CODEPAGE
  186.  
  187. Will tell you which is currently active codepage. Hardware BIOS codepage
  188. is allways supposed to be 437 (for the moment), which corresponds to the
  189. state of inactivity of the driver. DISPLAY always starts inactive.
  190.  
  191. A second command allows you to PREPARE a codepage, i.e., to load the
  192. codepage information that DISPLAY needs to operate. The information is
  193. loaded from a one of the .RAW files provided. For example, if you want to
  194. prepare DISPLAY to use codepage 860, you have to issue
  195.  
  196. MODECON CODEPAGE PREPARE (860) CP860.RAW
  197.  
  198. which will load the codepage 860 into the first buffer from the CP860.RAW file.
  199. You use a list format to load ONE codepage into a desired buffer. For example,
  200. if we have specified 2 buffers, we can load codepage 860 into the second one by
  201.  
  202. MODECON CODEPAGE PREPARE (,860) CP860.RAW
  203.  
  204. Other useful command is to make active certain codepage. Hardware codepages can
  205. always be selected. Any other codepage needs to be prepared beforehand. If we
  206. have prepared codepage 860 with the previous command, then make it active by
  207.  
  208. MODECON CODEPAGE SELECT 860
  209.  
  210. For the moment, this is the only way to select the DISPLAY codepage. However,
  211. note that in the future, you are not supposed to use MODE for doing that. You'd
  212. rather do it by loading NLSFUNC and calling the internal command CHCP, like
  213.  
  214. CHCP 860
  215.  
  216. Finally, if for some reason, your codepage was messed, you can always recover
  217. it with the REFRESH command:
  218.  
  219. MODECON CODEPAGE REFRESH
  220.  
  221. Please always read the fast help of MODECON program to know more about it.
  222.  
  223.  
  224. 7.- Codepages pack
  225. ==================
  226.  
  227. FD DISPLAY comes with some raw files you can use to prepare new codepages.
  228. In particular, DISPLAY is packed with the latest Reduced Pack of codepages by
  229. Henrique Peron, which is version 1.20 in this package. Please read the 
  230. accompaining documentation. 
  231.  
  232. The full pack of codepages has many more codepages that you may use with FD
  233. DISPLAY, but that are not included here. 
  234.  
  235. Please check the FreeDOS site for latest codepage pack versions, making sure
  236. that you have read the documentation accompaining each pack (both DISPLAY and
  237. packs documentation) to check compatibility.
  238.  
  239. DISPLAY 0.08 can be used with these packs:
  240. - Reduced: 1.00 - 1.20 (latest known)
  241. - Full:    1.11 - 1.20 (latest known)
  242.  
  243.  
  244. 8.- Future wishes
  245. =================
  246.  
  247. In a nearby future, I'll be considering these tasks:
  248.  
  249. (1) Be able to handle CPI files (expected by 0.10)
  250.  
  251. (2) Turn the files into proper device drivers (expect by 1.00)
  252.  
  253.  
  254. Here I show a list of wishes that I'd leave for other contributors:
  255. - load CPI files in several chunks (as MS-DISPLAY does)
  256. - configure more than one device at a time. E.g.:
  257.     DEVICE=PRINTER.SYS LPT1=... LPT2=...
  258. - save prepared CP buffers to XMS or EMS
  259. - read DRFONTs and more options from CPI files
  260. - (DISPLAY.SYS) communicate with ANSI.SYS via IOCTL calls
  261. - (PRINTER.SYS) enable the Privileged Lock Codepage Switching feature
  262.  
  263.  
  264. <<<EOF>>>
  265.